package com.mjh.zhujianju.service.base;

import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.livew.framework.base.service.BaseService;
import com.livew.framework.exception.XTBusinessException;
import com.livew.framework.page.PagedResult;
import com.mjh.zhujianju.model.base.UserExtendEO;
import com.mjh.zhujianju.vo.base.SysUserVO;

/**
 * @author liuyang
 * @Description: 用户党员信息
 * @date 2018/8/8 22:50
 */
public interface UserExtendService extends BaseService<UserExtendEO> {

    /**
     * 根据用户id集合所有党员相关的信息
     * @param userIds
     * @return List
     */
    List<UserExtendEO> queryUserExtendByUserIds(List<Long> userIds);

	/**
	 * 根据用户id查询用户信息
	 * @param userId
	 * @return
	 */
	UserExtendEO queryUserExtendByUserId(Long userId);
    
    /**
     * 根据用户id集合所有党员相关的信息
     * @param userIds
     * @return Map 
     */
    Map<Long,UserExtendEO> getUserExtendByUserIds(List<Long> userIds);

    
	PagedResult<SysUserVO> getVOList(SysUserVO vo);

	PagedResult<SysUserVO> getUserList(SysUserVO vo);

	/**
	 * 保存用户信息
	 * @param vo
	 * @throws XTBusinessException
	 */
	void saveInfo(SysUserVO vo)throws XTBusinessException;

	/**
	 * 查询
	 * @param id
	 * @return
	 * @throws XTBusinessException
	 */
	SysUserVO getInfo(Long id)throws XTBusinessException;

	void updateInfo(SysUserVO vo)throws XTBusinessException;
	
	/**
	 * 根据userId删除
	 * @param userId
	 * @return
	 * @throws XTBusinessException
	 */
	int delByUserId(Long userId)throws XTBusinessException;

	/**
	 * 修改工作信息
	 * @param vo
	 * @throws XTBusinessException
	 */
	void updateWorkInfo(SysUserVO vo)throws XTBusinessException;
	
	/**
	 * 导入
	 * @param file
	 * @throws XTBusinessException
	 */
	void importUserList(MultipartFile file) throws XTBusinessException,Exception;

}
